$(function () {
  // 项目根路径: http://big-event-api-t.itheima.net
  // layui的form表单
  const form = layui.form;

  // layer模块
  const layer = layui.layer

  // 点击'去注册'
  $('#link_reg').on('click', function () {
    $('.login-box').hide()
    $('.reg-box').show()
  })
  // 点击'去登录'
  $('#link_login').on('click', function () {
    $('.reg-box').hide()
    $('.login-box').show()
  })

  form.verify({
    // 自定义密码框的pwd校验规则
    pwd: [/^[\S]{6,12}$/, '密码必须6到12位，且不能出现空格'],
    // 校验两次密码是否一致的规则
    repwd: function (value) {
      // value就是确认密码框当中用户输入的内容
      // 还需要拿到密码框当中的内容,然后进行判断
      const pwd = $('#pwd').val()
      if (pwd !== value) {
        return '两次密码不一致'
      }
    }
  })

  // 注册功能
  // 历史遗留问题: 为何给button(type="submit")添加提交事件,会直接进行页面的跳转
  // form表单用于收集用户信息, 数据传递使用ajax通信
  // (button按钮没有submit事件,submit类型btn的点击事件同样可以触发form的submit)
  $('#formReg').on('submit', function (e) {
    // 1.阻止默认的提交行为
    e.preventDefault()
    // serialize()只能去获取当前form表单当中有name属性的控件
    console.log($(this).serialize())
    // 2.Ajax请求-注册功能
    const data = {
      username: $('#username').val(),
      password: $('#pwd').val()
    }
    $.post(
      '/api/reguser',
      data,
      function (res) {
        if (res.status !== 0) {
          return layer.msg(res.message)
        }
        layer.msg('注册成功,亲登录~')
        // 模拟点击跳转到登录框的功能
        $('#link_login').click()
      }
    )
  })

  // 登录功能
  $('#formLogin').on('submit', function (e) {
    e.preventDefault()
    $.ajax({
      url: '/api/login',
      method: 'POST',
      // $(this).serialize()获取用户名+密码
      data: $(this).serialize(),
      success: function (res) {
        if (res.status !== 0) {
          return layer.msg(res.message)
        }
        layer.msg(res.message)
        // 登录成功之后,获取的token字符串,需要存储到浏览器当中(localStorage)
        localStorage.setItem('token', res.token)
        // 登录成功,并且存储了用户的手牌,跳转到index.html
        location.href = '/index.html'
      }
    })
  })
})